﻿#include <iostream>



class Component 
{
public:
	Component() { std::cout << __FUNCTION__ << std::endl; }
	~Component() { std::cout << __FUNCTION__ << std::endl; }
};
class Base
{
public:
	Base() { std::cout << __FUNCTION__ << std::endl; }
	Base(const char * cstr) { std::cout << __FUNCTION__ << cstr << std::endl; }
	~Base() { std::cout << __FUNCTION__ << std::endl; }
};

class Derived : public Base
{
public:
	Derived() { std::cout << __FUNCTION__ << std::endl; }
	Derived(const char * cstr) :Base(cstr) { std::cout << __FUNCTION__ << cstr << std::endl; }
	~Derived() { std::cout << __FUNCTION__ << std::endl; }
private:
	Component com;
};


int main()
{
	{
		Derived d;
	}
	std::cout << "\n \n " << std::endl;
	////Derived dArg("Hello");
}

